const b = Symbol("b");
const obj = {
  a: 100,
  [b]: 200, // 即便 `enumerable: true` 也无法 `for...in`
  c: "c",
};
obj.__proto__.func = function () {};

Object.defineProperty(obj, "c", {
  enumerable: false, // 不可枚举
});
console.log(Object.keys(obj)); // a
console.log(Object.getOwnPropertyNames(obj)); // a c 不受 enumerable 影响
console.log(Object.getOwnPropertySymbols(obj)); // Symbol(b)
console.log(Reflect.ownKeys(obj)); // a, c, Symbol(b), func - 也不受 enumerable 影响
